package alocador.entidades.salas.propriedades;

import alocador.exceptions.PropriedadeInvalidaException;

/**
 * Interface Propriedade<br>
 * Guarda informacoes de uma Propriedade da SalaConcreta
 */
public interface Propriedade {

	/**
	 * Metodo acessador do Nome da Propriedade
	 * 
	 * @return String contendo seu nome
	 */
	public String getNome();

	/**
	 * Metodo que verifica a permissao de Alocacao dessa Propriedade
	 * 
	 * @return True - Permite Alocacao<br>
	 *         False - Nao Permite
	 */
	public boolean permiteAlocacao();

	/**
	 * Metodo que modifica os parametros do Alocador
	 * 
	 * @param parametros
	 *            Parametros da Propriedade<br>
	 *            Estes devem ser passados na forma:<br>
	 *            "Parametro:NovoEstado,Parametro2:NovoEstado2"
	 * @throws PropriedadeInvalidaException
	 *             Caso este parametro nao exista ou seu estado seja invalido
	 */
	public void setParametro(String parametros)
			throws PropriedadeInvalidaException;

}
